iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
自我挑戰組

Django系列 第 3

Day3~ Django 漫漫長路-建置Setting檔原來這麼容易~

  • 分享至 

  • xImage
  •  

大家好,我是Leo,今天我來介紹的是setting檔的設置/images/emoticon/emoticon30.gif
OK~~~ Let's go now!!!


First step create A file requirements.txt

asgiref==3.5.2
certifi==2022.9.24
cffi==1.15.1
charset-normalizer==2.1.1
cryptography==38.0.4
defusedxml==0.7.1
Django==4.1.3
django-allauth==0.51.0
django-cors-headers==3.13.0
django-filter==22.1
django-widget-tweaks==1.4.12
djangorestframework==3.14.0
idna==3.4
oauthlib==3.2.2
pycparser==2.21
PyJWT==2.6.0
python3-openid==3.2.0
pytz==2022.6
requests==2.28.1
requests-oauthlib==1.3.1
sqlparse==0.4.3
tzdata==2022.6
urllib3==1.26.13

pip install -r .\requestments.txt

Second step INSTALLED_APPS

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.google'
    
    'website',
    'rest_framework',
    'rest_framework.authtoken',
    'widget_tweaks',
    'corsheaders',
    'django_filters',
    'django.contrib.sites',
]

website : app名稱
rest_framework : API框架
rest_framework.authtoken : 使用簡單的基於Token的HTTP認證方案
corsheaders : DRF實現跨域一個第三方擴展
django_filters : 可做簡易篩選的過濾器
django.contrib.sites : 可選式框架,它是將對象和功能關聯到特定網站的掛鉤
allauth.socialaccount.providers.google : 第三方的providers,可參考該鏈接來加入你想加入的providers


還記得我們上面有設定corsheaders
MIDDLEWARe內要增加一行corsheaders.middleware.CorsMiddleware
CORS_ORIGIN_ALLOW_ALL = True 允許所有跨站請求, whitelist不會被使用

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'corsheaders.middleware.CorsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True

Third step 設定資料庫 可以設多個資料庫

在這邊如未指定資料庫,預設則是default內的資料庫

DATABASES = {
     'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'NAME': 'mytest1',
            'USER': 'root',
            'PASSWORD': 'password',
    },

    'test2': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'NAME': 'test2',
        'USER': 'root',
        'PASSWORD': 'password',
    },
}

Fourth step 設置rest_framework

DEFAULT_FILTER_BACKENDS : 默認過濾器後端可以在全局設置中使用DEFAULT_FILTER_BACKENDS來配置
DEFAULT_PERMISSION_CLASSES : 默認權限策略可以使用DEFAULT_PERMISSION_CLASSES設置進行全局設置

REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
}

Fifth step 設置scoial account 第三方的providers

SOCIALACCOUNT_QUERY_EMAIL : 請求第三方賬戶提供商的電子郵件地址
ACCOUNT_LOGOUT_ON_GET : GET不是用來修改服務器狀態的,所以將它設置為Flase
ACCOUNT_UNIQUE_EMAIL : 電子郵件唯一性,所以選True
ACCOUNT_EMAIL_REQUIRED : 用戶在使用註冊時,需要提交電子郵件地址

SOCIALACCOUNT_QUERY_EMAIL = True
ACCOUNT_LOGOUT_ON_GET= False
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_REQUIRED = True

SOCIALACCOUNT_PROVIDERS = {
    'google': {
        'SCOPE': [
            'profile',
            'email',
        ],
        'AUTH_PARAMS': {
            'access_type': 'online',
        }
    }
}

今天我們將setting檔建置完成,明天預計從admin後台創建超級使用者開始講起
我們明天見,各位掰掰~~~/images/emoticon/emoticon29.gif


上一篇
Day2~ Django 漫漫長路-搞定好環境就成功一半!?
下一篇
Day4~ Django 漫漫長路-一鍵生成database table
系列文
Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言